>> ultrafil >> Tutoraux OpenGL >> MotionBlur
Infos Logiciels Jeux écrans de veille Fonds d'écran OpenGL Prog 3D Liens
- Motion Blur -
Cette technique permet de réaliser un effet de trainé. Le point névralgique de cet effet se trouve dans l'utilisation d'une texture noire (texture de blur) sur laquel on applique de la transparence par alpha-blending, et on y recopie le viewport. Plus le nombre de recopie est important plus la trainé est belle.
Algorithme
Le détail de cet algorithme se trouve dans les sources téléchargeables avec ce tutorial.
La création de la texture de blur se trouve être réalisé par la class IMAGE qui se trouve dans les fichiers image.h et image.cpp. La fonction membre générant cette texture s'appelle IMAGE :: CreerRender().
L'algorithme de rendu se trouve dans la fonction principale d'affichage CDemo :: DrawGLScene(); dans le fichier cdemo.cpp.
On utilisera la fonction AnimateNextFrame(50); pour obtenir 50 recopie du viewport sur la texture de blur. Cette fonction renvoie vrai si le nombre de frame par second est inferieur au nombre voulu. Sinon il retourne faux.
Maintenant on peut copier le viewport sur la texture. Il faut donc diminuer celui-ci a la taille de la texture de blur. Ensuite on applique la texture de blur avec la fonction CDemo :: RenderMotionBlur(); sur l'ecran.
Ensuite on peut dessiner ce que l'on veut a l'ecran. Et on copie le viewport sur la texture de blur.
Pour finir on vide les buffer et on remet le viewport comme a l'origine. On réaffiche l'objet afin de l'avoir de manière nette.
Rendu
rendu
Conclusion
Cet algorithme se base sur le principe de la copie de texture à la volée, ce qui demande forcement pas mal de ressources; mais ça claque ;OD

Retour